The present invention pertains to the field of BIOS (Basic Input-Output System). More particularly, this invention relates to remote boot agents or option-ROM (Read Only Memory) boot procedures.
BIOS (Basic Input-Output System) is the software that a computer uses to get the computer started, or to xe2x80x9cbootxe2x80x9d (xe2x80x9cbootxe2x80x9d means hardware initialization of the system electronics in this case) the computer. Most computer software, such as an operating system and applications program, is stored in a computer""s RAM (Random Access Memory) while in use. RAM is temporary, or volatile, memory. That is, the software is lost when the computer is turned off, and needs to be re-loaded the next time the computer is turned on. BIOS, however, is usually stored in ROM (Read Only Memory). ROM is permanent, or non-volatile, memory. That is, BIOS is not lost when a computer is turned off. Since BIOS is usually stored in ROM, BIOS is sometimes referred to as BIOS ROM or boot ROM.
Typically, when a computer is turned on, a microprocessor inside the computer goes to a predetermined place in ROM to find the BIOS and begin executing it. Among the first things that BIOS instructs the microprocessor to do is a POST (Power-On Self Test). A POST is usually done to initialize the computer""s various components to make sure they are operational prior to loading the operating system. When POST is successfully complete, the BIOS loads the operating system into RAM, usually from a hard drive. When the operating system is loaded, the computer is ready for use.
Of course, different computers have different components. For instance, computers may include or be connected to any of a variety of peripheral devices and/or networks. Depending on which components a computer has, a POST may work with various optional routines or agents to initialize interaction with the computer""s various components. Like BIOS, these optional routines or agents are usually stored in ROM. They are sometimes referred to as option ROM, option boot ROM, option BIOS, or remote boot ROM. As used herein however, these routines or agents will generally be referred to as remote boot agents.
A remote boot agent can be used to perform virtually any optional initialization task for virtually any computer component. A xe2x80x9cdisklessxe2x80x9d computer provides an example of how a remote boot agent may be used. A diskless computer does not have a local hard drive so it has no place to store operating system files. Instead, the computer relies on a network to store the operating system files for it. When the computer is turned on, a POST initiates a remote boot agent. The remote boot agent searches the network to find a boot server. When it finds the boot server, the agent downloads whatever information the computer needs to finish booting. For instance, the agent may download the needed operating system files or the agent may download instructions to enable the BIOS to download the operating system files after POST is complete.
A remote boot wrapper can be used to manage a number of remote boot agents. For instance, a computer may include several different remote boot agents, each designed to work with a different network protocol. All of the agents can be bundled within one remote boot wrapper. During POST, a remote boot wrapper can be configured to activate the appropriate remote boot agent(s) depending on the type of network and/or peripherals to which the computer is coupled. The remote boot wrapper displays a window including a prompt to enter a configuration mode. The remote boot wrapper will delay the overall boot procedure for a certain minimum time to give a user an opportunity to enter the configuration mode. A typical minimum delay is four seconds.
The format of the configuration mode depends on the type and number of remote boot agents that the remote boot wrapper is managing. For instance, the user may be presented with a menu to select from among a number remote boot agents for different network protocols, as well as menus or submenus to display and change various network protocol settings for each agent.